/**
 * 仿写JSON内置API的parse方法
 * @param {String} javaData  JSONS数据格式
 * @return Object
 */
// 二、写空函数
// 三、将一放到二里面
// 四、微调，写返回值
function parse(javaData){
    // 一、写功能
    // let javaData = '{"errcode":0 , "errmsg":"ok"}'
        // 1、用正则去掉【" {} 空格】
            let str = javaData.replace(/"|{|}|\s/g,'')        // 'errcode:0,errmsg:ok'
        // 2、字符串转数组，用split，中间用逗号分隔
            let arr = str.split(',')                          // ['errcode:0','errmsg:ok']
        // 3、遍历上面定义一个空对象
            let objData = {}
        // 4、遍历数组
            arr.forEach(function(item,i){
        // 4.1 遍历里面---按照冒号分割
            let temp = item.split(':')          // ['errcode:0'] ['errmsg:ok']   
        // 4.2 遍历里面---数组的第一个值是键，第二个值是值，用对象的增语法,语法时objData.新键=值，如果键是变量时用[]
            // objData[temp[0]] = temp[1]
            objData[temp[0]] = isNaN(Number(temp[1])) ? temp[1] : Number(temp[1])   // 这样写更严谨，保证对象键的值是准成Number类型是NaN的话就直接写原来的值，如果不是NaN的话，就用转Number过后的temp[1]
        })
        return objData
    }
    
console.log('------------------------------');
    
/**
 * 仿写JSON内置API的stringify方法
 * @param {Object} stringify 
 * @returns String
 */        
// 二、写空函数
// 三、将一放到二里面
// 四、微调，写返回值
function stringify(objData){
    // 一、写功能
    // let objData = {errcode:0,errmsg:"ok"}
        // 1、定义一个空数组
        let arr = []
        // 2、遍历对象，将【键、值】push到数组中
            for(let key in objData){
                // console.log(key,obj[key]);        //errcode,0    //errmsg,"ok"
                // 3、拼接成json数据格式
                let val = objData[key]
                arr.push(`"${key}":${val}`)         //["errcode":0,"errmsg":"ok"]
                javaData = `{${arr.join(',')}}`     //`{"errcode":0,"errmsg":"ok"}`
            }
        return javaData  
    }